package solver;
import graph.Node;

/**
 * An interface for a solver which analyzes a program's and its properties' parse tree,
 * and returns whether the code conforms to the properties
 * 
 */

public interface Solver {
	
	/**
	 * 
	 * @param g	A parse tree representing the program and its properties
	 * @return	true on success, false on failure
	 */
	public boolean setGraph(Node g);
	
	/**
	 * Takes the parse tree and returns whether the properties hold
	 * @return	The result of the solver: YES, NO or UNKNOWN
	 */
	public Decision solve();
	

}
